namespace org.jawk.jrt
{
	/// <summary>A list of keys into an associative array.</summary>
	/// <remarks>
	/// A list of keys into an associative array.
	/// <p>
	/// KeyList is provided to differentiate between associative
	/// array keylists and other types of lists on the operand stack
	/// or as contained by variables.  However, this is the only
	/// List in used in this manner within Jawk at the time of
	/// this writing.
	/// </remarks>
	/// <seealso cref="KeyListImpl">KeyListImpl</seealso>
	public interface IKeyList
	{
		//public interface KeyList extends java.util.List<Object>
		/// <summary>Retrieve the number of elements in the KeyList.</summary>
		/// <remarks>Retrieve the number of elements in the KeyList.</remarks>
		int Size();

		object GetFirstAndRemove();
	}
}
